本发明提供一种带隐私保护的数据共享与发布的方法和装置,数据拥有者根据预设需求,对拥有的数据及与数据相关的关键词加密后,存储到服务提供者,用户向服务提供者发送关键词查询请求,服务提供者将接收的关键词查询请求转发给数据拥有者,数据拥有者,通过颁发给服务提供者代理重加密密钥,给服务提供者授权,服务提供者利用用户的查询请求,若通过比较预先存储的加密查询关键词与隐含查询关键词的陷门信息,验证有满足查询请求的加密文件,则服务提供者用代理重加密密钥加密符合用户查询请求的加密文件,并将加密文件提供给用户,由用户用自己的私钥解密文件,确保数据拥有者的数据隐私的保护,将数据拥有者的数据共享给授权的合法使用者。
1.一种带隐私保护的数据共享与发布的方法,其特征在于,所述方法包括:数据拥有者根据预设需求,对拥有的数据及与数据相关的关键词用公钥加密后,存储到服务提供者提供的存储服务器;用户向服务提供者发送关键词查询请求信息;所述请求信息是由隐含查询关键词的陷门信息构成;服务提供者将接收的关键词查询请求信息转发给数据拥有者;数据拥有者,通过颁发给服务提供者代理重加密密钥,给服务提供者授权;服务提供者利用用户的查询请求信息,若通过比较预先存储的加密查询关键词与隐含查询关键词的陷门信息,验证有满足查询请求的加密文件,则服务提供者用代理重加密密钥加密符合用户查询请求的加密文件,并将加密文件提供给用户,由用户用自己的私钥解密文件。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:若通过比较预先存储的加密查询关键词与隐含查询关键词的陷门信息,验证没有满足查询请求的加密文件,则发送“未查找到符合查询条件的文件”给用户。
3.根据权利要求1所述的方法,其特征在于,所述对拥有的数据及与数据相关的关键词用公钥加密具体分以下子步骤完成:对拥有的数据用公钥加密;对与拥有的数据相关的关键词用公钥加密。
4.一种带隐私保护的数据共享与发布的装置,其特征在于,所述装置包括:第一处理模块,用于由数据拥有者根据预设需求,对拥有的数据及与数据相关的关键词用公钥加密后,存储到服务提供者提供的存储服务器;第二处理模块,用于由用户向服务提供者发送关键词查询请求信息;所述请求信息是由隐含查询关键词的陷门信息构成;第三处理模块,用于由服务提供者将接收的关键词查询请求信息转发给数据拥有者;第四处理模块,用于由数据拥有者,通过颁发给服务提供者代理重加密密钥,给服务提供者授权;第五处理模块,用于由服务提供者利用用户的查询请求信息,若通过比较预先存储的加密查询关键词与隐含查询关键词的陷门信息,验证有满足查询请求的加密文件,则服务提供者用代理重加密密钥加密符合用户查询请求的加密文件,并将加密文件提供给用户,由用户用自己的私钥解密文件。
5.根据权利要求4所述的装置,其特征在于,所述装置还包括:第六处理模块,用于当通过比较预先存储的加密查询关键词与隐含查询关键词的陷门信息,验证没有满足查询请求的加密文件,发送“未查找到符合查询条件的文件”给用户。
6.根据权利要求4所述的装置,其特征在于,所述第一处理模块包括以下子模块:第一加密子模块,用于对拥有的数据用公钥加密;第二加密子模块,用于对与拥有的数据相关的关键词用公钥加密。
技术领域本发明涉及信息安全技术领域,特别是涉及一种带隐私保护的数据共享与发布的方法和装置。
背景技术随着分布式计算、虚拟化技术、互联网等相关技术的发展,逐渐演进出现的新的计算模式和商业模式--云计算,为信息通信技术带来新的变革和挑战。通过云计算,利用各种接入设备,用户可以随时随地,按照实际需要获得所需的计算和存储服务。比如,用户可以利用云服务提供商提供的存储服务,把数据发布在云端,并共享给其他用户。在云计算具有超大规模、虚拟化、可伸缩性、按需服务、成本低等突出优势的同时,也带来安全和信任方面新的挑战。比如基于云计算的电子健康档案系统,包含许多敏感的个人数据如病人的基本健康数据、病历、处方等。这些数据要共享给医疗机构的医护人员,以便为病人提供及时、高效、精准的医疗救护服务;同时,要保护患者的隐私,确保病人的电子健康档案、电子病历等敏感信息不会泄漏给未授权的使用者。因此,怎样确保用户的数据隐私得到保护,同时用户的数据可以共享给授权的合法使用者,是在云计算模式下的数据共享与发布系统中要解决的一个关键问题。具体到实际的应用场景中,为满足机密性,数据拥有者把文件加密上传到不受信任的存储服务器(即存储服务器是在数据拥有者信任域之外,提供存储服务的服务提供者可能会受到各种安全威胁和攻击,服务提供者本身也可能窥探数据拥有者的文件),用户想获得并使用文件,向存储服务器发送文件使用请求(比如通过关键字检索文件)。这类场景下,通过加密方案保护数据拥有者的数据隐私;而用户的查询请求,有时也会涉及敏感信息(比如一些敏感的查询关键词泄漏给存储服务器,存储服务器会推知存储文件可能是与关键词相关的重要文件),因此,需要保护用户的查询隐私。并且,在保护数据拥有者的数据隐私和用户的查询隐私的前提下,存储服务器可以查找存储的加密文件中是否有满足用户查询要求的文件。针对这一具体问题,目前存在以下几种解决方法:(1)带关键词搜索的公钥加密技术,使不受信任的服务器对已经加密的文件查询出是否包含有用户需要的关键词,在这个过程中服务器不能获知任何数据隐私和关键词隐私。例如,Alice请求存储她电子邮件的服务器S发送包含有关键词“加急”的邮件。服务器对加密文件进行查询,测试是否含有关键词“加急”,如果有就发送给Alice。在文献(DanBoneh,Giovannixa0Dixa0Crescenzo,Rafialxa0Ostrovsky,andxa0Giuseppexa0Persiano.Publicxa0keyxa0encryptionxa0withxa0keywordxa0search.Inxa0Proceedingsxa0ofxa0Eurocrypt’04,2004)中,Boneh等提出了一个带关键词搜索的公钥加密方案。Alice用自己的私钥和关键词产生一个陷门信息,发送给S,S用测试算法,输入加密关键词、陷门信息和用户公钥,如果关键词匹配,测试算法就会输出1;否则,为0。不过Boneh等提出的方案也存在一些问题(参考文献:Joonsangxa0Baek,Reihanehxa0Safavi-Naini,Willyxa0Susilo.Publicxa0Keyxa0Encryptionwithxa0Keywordxa0Searchxa0Revisited.Cryptologyxa0ePrintxa0Archive,Report2005/191.2005),例如这个加密方案是一次性的,如果重复使用,服务器会存储这些关键词,会不安全;在很多情况下,应用的是多关键词搜索,但是对此方面,Boneh等的带关键词搜索的公钥加密方案没有讨论。(2)代理重加密技术,具体的讲是一种公钥加密方案,半受信任的代理服务器把用A的公钥加密的文件,转换为只能用B的私钥解密的文件。在这个过程中,第三方服务器看不到文件的明文信息。形式上,代理重加密方案允许代理服务器使用重加密密钥
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="116"/>把用A的公钥PK
a加密的文件转化为用B的公钥PK
b加密的文件,反方向也可以。(参见文献Shuchengxa0Yu,Congxa0Wang,Kuixa0Ren,Wenjingxa0Lou.Achievingxa0secure,scalable,andxa0fine-grainedxa0accessxa0controlxa0inxa0cloudxa0computing.IEEExa0INFOCOMxa02010,2010)Ateniese等提出了单向的基于代理重加密的分布存储方案(GAteniese,K.Fu,M.Green,S.Hohenberger.Improvedxa0Proxyxa0Re-EncryptionSchemesxa0withxa0Applicationsxa0toxa0Securexa0Distributedxa0Storage.ACMxa0Transactionsonxa0Informationxa0andxa0Systemxa0Security(TISSEC),2006.)。具体地,文件拥有者用对称密钥加密文件。文件密钥被主公钥加密,且只能被主私钥解密,并保留在数据拥有者手中。数据拥有者利用主公钥和用户的公钥产生代理重加密密钥。利用此密钥,代理服务器就可以把文件转化为给授权用户的文件。这是一个单跳的方案,即已经重加密的文件不能重加密。(3)双接收端加密技术,Diament等首先提出高效的双接收端加密系统(Tedxa0Diament,Hominxa0K.Lee,Angelosxa0Keromytis,Motixa0Yung.Thexa0dualreceiverxa0cryptogramxa0andxa0itsxa0applications.In:B.Pfitzmannxa0andxa0P.Liu,editors,Proceedingsxa0ofxa0thexa011thxa0ACMxa0Conferencexa0onxa0Computerxa0andCommunicationsxa0Security(CCSxa02004),pagesxa0330-343,ACMxa0Press,2004.),它可以是密文在两个独立的接收端解密。此方案的缺点在于,为了解密部分密文,服务器需要发送一个额外的私钥给客户,这在真实环境中是不安全的。在云计算应用中,大量的数据存储和计算由云服务提供商提供的服务实现。对于个人用户,使用各种各样的资源受限的终端设备,随时随地地从云端获得所需要的服务。终端设备上大量计算和存储任务转移到云端(云服务提供商)完成。传统的简单加密方案或直接使用带关键词搜索的公钥加密、代理重加密等方案不能适应这种新型计算模式。因此,目前需要本领域技术人员迫切解决的一个技术问题就是:如何能够创新地提出一种带隐私保护的数据共享与发布的方法和装置,在确保数据拥有者的数据隐私得到保护的同时,数据拥有者的数据可以共享给授权的合法使用者。
发明内容本发明所要解决的技术问题是提供一种带隐私保护的数据共享与发布的方法和装置,用以保证数据拥有者的数据隐私得到保护的同时,数据拥有者的数据可以共享给授权的合法使用者。为了解决上述问题,本发明公开了一种带隐私保护的数据共享与发布的方法,所述方法包括:数据拥有者根据预设需求,对拥有的数据及与数据相关的关键词用公钥加密后,存储到服务提供者提供的存储服务器;用户向服务提供者发送关键词查询请求信息;所述请求信息是由隐含查询关键词的陷门信息构成;服务提供者将接收的关键词查询请求信息转发给数据拥有者;数据拥有者,通过颁发给服务提供者代理重加密密钥,给服务提供者授权;服务提供者利用用户的查询请求信息,若通过比较预先存储的加密查询关键词与隐含查询关键词的陷门信息,验证有满足查询请求的加密文件,则服务提供者用代理重加密密钥加密符合用户查询请求的加密文件,并将加密文件提供给用户,由用户用自己的私钥解密文件。优选的,所述方法还包括:若通过比较预先存储的加密查询关键词与隐含查询关键词的陷门信息,验证没有满足查询请求的加密文件,则发送“未查找到符合查询条件的文件”给用户。优选的,所述对拥有的数据及与数据相关的关键词用公钥加密具体分以下子步骤完成:对拥有的数据用公钥加密;对与拥有的数据相关的关键词用公钥加密。本发明还公布了一种带隐私保护的数据共享与发布的装置,所述装置包括:第一处理模块,用于由数据拥有者根据预设需求,对拥有的数据及与数据相关的关键词用公钥加密后,存储到服务提供者提供的存储服务器;第二处理模块,用于由用户向服务提供者发送关键词查询请求信息;所述请求信息是由隐含查询关键词的陷门信息构成;第三处理模块,用于由服务提供者将接收的关键词查询请求信息转发给数据拥有者;第四处理模块,用于由数据拥有者,通过颁发给服务提供者代理重加密密钥,给服务提供者授权;第五处理模块,用于由服务提供者利用用户的查询请求信息,若通过比较预先存储的加密查询关键词与隐含查询关键词的陷门信息,验证有满足查询请求的加密文件,则服务提供者用代理重加密密钥加密符合用户查询请求的加密文件,并将加密文件提供给用户,由用户用自己的私钥解密文件。优选的,所述装置还包括:第六处理模块,用于当通过比较预先存储的加密查询关键词与隐含查询关键词的陷门信息,验证没有满足查询请求的加密文件,发送“未查找到符合查询条件的文件”给用户。优选的,所述第一处理模块包括以下子模块:第一加密子模块,用于对拥有的数据用公钥加密;第二加密子模块,用于对与拥有的数据相关的关键词用公钥加密。与现有技术相比,本发明具有以下优点:本发明中数据拥有者根据预设需求,对拥有的数据及与数据相关的关键词用公钥加密后,存储到服务提供者,用户向服务提供者发送由隐含查询关键词的陷门信息构成的关键词查询请求信息,服务提供者将接收的关键词查询请求信息转发给数据拥有者,数据拥有者,通过颁发给服务提供者代理重加密密钥,给服务提供者授权,服务提供者利用用户的查询请求信息,若通过比较预先存储的加密查询关键词与隐含查询关键词的陷门信息,验证有满足查询请求的加密文件,则服务提供者用代理重加密密钥加密符合用户查询请求的加密文件,并将加密文件提供给用户,由用户用自己的私钥解密文件,从而在确保数据拥有者的数据隐私得到保护的同时,将数据拥有者的数据共享给授权的合法使用者。
附图说明图1是本发明实施例一所述的一种带隐私保护的数据共享与发布的方法流程图;图2是本发明实施例二所述的一种带隐私保护的数据共享与发布的装置结构图。
具体实施方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。实施例一:参照图1,示出了本发明的一种带隐私保护的数据共享与发布的方法流程图,所述方法具体包括:步骤S101,数据拥有者根据预设需求,对拥有的数据及与数据相关的关键词用公钥加密后,存储到服务提供者提供的存储服务器;优选的,所述对拥有的数据及与数据相关的关键词用公钥加密具体分以下子步骤完成:对拥有的数据用公钥加密;对与拥有的数据相关的关键词用公钥加密。步骤S102,用户向服务提供者发送关键词查询请求信息;所述请求信息是由隐含查询关键词的陷门信息构成;步骤S103,服务提供者将接收的关键词查询请求信息转发给数据拥有者;步骤S104,数据拥有者,通过颁发给服务提供者代理重加密密钥,给服务提供者授权;步骤S105,服务提供者利用用户的查询请求信息,若通过比较预先存储的加密查询关键词与隐含查询关键词的陷门信息,验证有满足查询请求的加密文件,则服务提供者用代理重加密密钥加密符合用户查询请求的加密文件,并将加密文件提供给用户,由用户用自己的私钥解密文件。优选的,所述方法在当通过比较预先存储的加密查询关键词与隐含查询关键词的陷门信息,验证没有满足查询请求的加密文件,还包括发送“未查找到符合查询条件的文件”给用户。本实施例中所述的方法中用到的基本工具是双线性映射(双线性对)。设G
1和G
2是生成元分别为P
1、P
2的循环加法群,阶为p。G
T是阶为p的循环乘法群。其中:群是代数里的基本概念,群的阶表示群中的元素个数。对循环群而言,群G中任一元素可由某元素g的整数次幂构成,则g称为G的生成元。具体的,满足如下属性的映射e:G
1×G
2→G
T称为双线性对:(1)双线性性:对所有的P∈G
1,Q∈G
2,a,b∈Z
q,有e(aP,bQ)=e(P,Q)
ab。(2)非退化性:e(P,Q)≠1。(3)可计算性:对所有的P∈G
1,Q∈G
2,存在有效算法计算e(P,Q)。为了进一步说明本实施例所述的方法,这里对其实现细节做具体的介绍:假设参与方有:数据拥有者A、服务提供者S、用户U。选取安全参数K∈Z
+,生成素数q,素数阶q的群G
1和G
2,一个双线性映射e:G
1×G
1→G
2,g,h∈G
1,Z=e(g,g)∈G
2;然后选择两个Hash函数H
1:{0,1}
*→G
1*,
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="291"/>Hash函数H
2:G
2→{0,1}
logq,Hash函数H
4:G
2→{0,1}
n,n为整数。选取三个随机元素
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="248"/>计算g
a、g
b和g
c。明文空间包括
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="352"/>G
W∈G
2密钥生成(KG):数据拥有者A的公/私钥对是A
pub=g
a,A
priv=a;用户U的公/私钥对是U
pub=g
b,U
priv=b;服务提供者的公钥是S
pub=g
c,私钥是c。数据拥有者加密具体分为两部分:关键词加密(KWEnc)和消息加密(MEnc)。取随机数
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="145"/>这里所述的消息也即数据拥有者所拥有的数据。其中,KWEnc,使用数据拥有者的公钥g
a加密关键词W
1,...W
k(k∈Z
+),计算H
2(e(g
a,H
1(W
i))
r),W
i∈{W
1,...W
k},则关键词对应的密文是
![]()
ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="536"/>MEnc,数据拥有者对消息m加密,数据拥有者的公钥g
a、服务提供者的公钥g
c和随机数r做为输入,取随机元素ρ∈{0,1}
n,计算u
1=h
r,
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="498"/>u
3=m·e(H
3(ρ),g
a)
r,得到生成的密文C
m=(u
1,u
2,u
3)。将加密后的数据及与数据相关的关键词存储在服务提供者端。计算查询关键词陷门信息(TCompute):输入用户的私钥U
priv=b,关键词W
j,计算出陷门值
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="322"/>用户把
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="53"/>发给服务提供者。代理重加密密钥生成(RG):数据拥有者计算代理重加密密钥rk
A→U=g
abr,并把rk
A→U发给服务提供者。验证查询关键词(Test):服务提供者为了判断存储的加密消息内是否包含关键词W
i,测试
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="469"/>是否成立。如果成立,
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="403"/>输出1,否则,就输出0。其中,由于
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="530"/>因此,
CWi=H2(e(ga,H1(Wj))r)=H2(e(gabr,H1(Wj)1/b))]]> =H2(e(rkA→U,TWj))]]> 代理重加密(R):服务提供者S用代理重加密密钥rk
A→U=g
abr,计算u
4=e(H
3(ρ),rk
A→U)=e(H
3(ρ),g
abr),可将数据拥有者生成的密文C
m=(u
1,u
2,u
3),转换成给用户U的密文C
U=(u
3,u
4)。其中,
ρ=u2⊕H4(e(ha,gc)r)=u2⊕H4(e(ga,hr)c)=u2⊕H4(e(ga,u1)c),]]> 因此服务提供者可用私钥c计算出ρ。服务提供者S把C
U发给用户。用户解密(D):为解密C
U=(u
3,u
4),用户用私钥b计算
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="560"/>则恢复出消息m。其中,
u3(u4)1b=m·e(H3(ρ),ga)r(e(H3(ρ),gab)r)1b=m·e(H3(ρ),ga)re(H3(ρ),ga)r=m.]]>在实际应用场景中,采用本发明可以确保数据拥有者的数据隐私,即数据拥有者的数据对服务提供者和未授权用户是保密的。用数据拥有者的公钥对数据加密后存储,极大的减少对服务提供者的信任依赖,减少对文件存储的更改,适于在大规模云计算中的应用。当用户提交查询数据请求时,服务提供者需要先获得数据拥有者的授权信息,才能对存储的加密文件进行处理和分析。通过保护用户的查询关键词隐私,这样可以避免服务提供者知道用户提交的查询是什么。在保护数据拥有者的数据隐私和用户的关键词查询隐私前提下,将数据拥有者的数据共享给授权的合法使用者。另外,在本方法的服务提供者代理重加密步骤中,服务提供者通过计算中间结果ρ进而计算出给用户的部分密文u
4,达到了用户解密过程中的耗时计算任务转移给服务提供者运算的效果,降低用户的计算负担,因此本方法也适用于云计算中资源受限的客户端设备(如计算能力、存储能力和电量受限的手机)。更进一步的,下面给出实施本发明中提出的方法的一种具体实例。以电子健康档案系统为例阐述一下本发明的具体实施方式。电子健康档案系统中所涉及的各方实体:健康档案拥有者、医院数据中心、数据查询用户。其中健康档案对应发明中的消息m,健康档案拥有者相当于本发明中的数据拥有者,医院数据中心对应于服务提供者,数据查询用户(比如医院的医生、护士或健康档案拥有者本人或其亲属)对应用户。下面实施方式中出现的其他参数与本发明所提方法具体实现步骤中的定义相同。具体实施的方式为:健康档案拥有者按照自身需要,用自己的公钥g
a加密所拥有的基本电子健康信息m,以及加密与个人健康信息相关的关键词W
i∈{W
1,...W
k}。电子健康信息m对应的密文C
m=(u
1,u
2,u
3),其中u
1=h
r,
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="513"/>u
3=m·e(H
3(ρ),g
a)
r,关键词对应的密文是
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="532"/>将加密结果C
m和
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="58"/>存储在医院数据中心提供的存储服务器上。数据查询用户(比如医院的医生或健康档案拥有者的亲属)向医院数据中心发送关键词查询请求信息
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="80"/>其中
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="322"/>W
i∈{W
1,...W
k}是查询关键词,b是用户的私钥,H
1是安全Hash函数。医院数据中心通知健康档案拥有者,有用户提交健康档案查询请求。健康档案拥有者给医院数据中心授权,即发给医院数据中心代理重加密密钥rk
A→U=g
abr。医院数据中心利用用户的查询请求信息,通过比较预先存储的加密查询关键词与用户提交的隐含着关键词的查询信息,验证是否有满足查询请求的加密健康档案。即验证
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="469"/>是否成立。若有满足条件的健康档案(验证等式成立),则医院数据中心用代理重加密密钥加密符合查询请求的加密健康档案。首先医院数据中心用私钥c计算出ρ:
ρ=u2⊕H4(e(ha,gc)r)=u2⊕H4(e(ga,hr)c)=u2⊕H4(e(ga,u1)c)]]> 然后用代理重加密密钥计算u
4=e(H
3(ρ),rk
A→U)=e(H
3(ρ),g
abr),可将健康档案拥有者生成的加密健康档案C
m=(u
1,u
2,u
3),转换成给数据查询用户U的加密健康档案C
U=(u
3,u
4),数据查询用户用自己的私钥b解密出电子健康档案,即
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="286"/>若没有满足条件的加密健康档案,返回“未查找到符合查询条件的文件”给用户。本实施例所述的方法可广泛应用于分布式计算、云计算等相关领域以及移动互联网、电子商务、电子政务、电子健康医疗、网络协同办公等应用系统中。在确保数据拥有者的数据隐私得到保护的同时,数据拥有者的数据可以共享给授权的合法使用者,在实现具有数据拥有者隐私保护、用户查询隐私保护功能的同时,服务提供者可以对存储的数据按用户查询要求查询,并把查询到的数据拥有者的加密数据共享给用户。即服务提供者不知道用户提交的是什么查询,也不知道查询出来的是什么信息,从而实现数据拥有者获得安全的数据存储和数据发布服务,用户的查询隐私也得到保障。实施例二:参照图2,示出了本发明的一种带隐私保护的数据共享与发布的装置结构图,所述装置具体包括:第一处理模块201,用于由数据拥有者根据预设需求,对拥有的数据及与数据相关的关键词用公钥加密后,存储到服务提供者提供的存储服务器;第二处理模块202,用于由用户向服务提供者发送关键词查询请求信息;所述请求信息是由隐含查询关键词的陷门信息构成;第三处理模块203,用于由服务提供者将接收的关键词查询请求信息转发给数据拥有者;第四处理模块204,用于由数据拥有者,通过颁发给服务提供者代理重加密密钥,给服务提供者授权;第五处理模块205,用于由服务提供者利用用户的查询请求信息,若通过比较预先存储的加密查询关键词与隐含查询关键词的陷门信息,验证有满足查询请求的加密文件,则服务提供者用代理重加密密钥加密符合用户查询请求的加密文件,并将加密文件提供给用户,由用户用自己的私钥解密文件。优选的,所述装置还包括:第六处理模块206,用于当通过比较预先存储的加密查询关键词与隐含查询关键词的陷门信息,验证没有满足查询请求的加密文件,发送“未查找到符合查询条件的文件”给用户。优选的,所述第一处理模块201包括以下子模块:第一加密子模块2011,用于对拥有的数据用公钥加密;第二加密子模块2012,用于对与拥有的数据相关的关键词用公钥加密。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。以上对本发明所提供的一种带隐私保护的数据共享与发布的方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。